package com.xgzit.xgzmall.order.vo;

import lombok.Getter;
import lombok.Setter;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import java.util.Objects;

/**
 * 订单确认页 Vo
 * @Author xgz
 * @Date 2021-06-26 19:45
 */
public class OrderConfirmVo {

    /** 收货地址列表 **/
    @Setter @Getter
    List<MemberAddressVo> address;

    /** 所有选中的购物项 **/
    @Setter @Getter
    List<OrderItemVo> items;

    /** 发票信息 略 **/

    /** 优惠卷信息 以金豆为例 **/
    @Setter @Getter
    Integer integration;

    /** 订单总额 **/
    BigDecimal total;

    /** 应付价格 **/
    BigDecimal payPrice;

    /** 订单令牌,防止重复提交 **/
    @Setter @Getter
    String orderToken;

    /** 总数量 **/
    public Integer count;

    /** 是否有库存的Vo **/
    @Setter @Getter
    Map<Long, Boolean> stocks;

    public Integer getCount(){
        Integer i = 0;
        if (Objects.nonNull(items)){
            for (OrderItemVo item : items) {
                i+=item.getCount();
            }
        }
        return i;
    }

    public BigDecimal getTotal() {
        BigDecimal sum = new BigDecimal("0");
        if (Objects.nonNull(items)){
            for (OrderItemVo item : items) {
                sum = sum.add(item.getPrice().multiply(new BigDecimal(item.getCount().toString())));
            }
        }
        return sum;
    }

    public BigDecimal getPayPrice() {

        return getTotal();
    }
}
